package com.syh.jn.scm.dto.supplier.finance.statementAccountBill;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

@Data
public class StatementAccountBillMto implements Serializable {
  /**
   * id
   */
  @NotNull(message = "id不能为空")
  private Long id;
  /**
   * 客户类型: 0上游, 1下游, 2物流
   */
  @NotNull(message = "客户类型不能为空")
  private Short customerType;
  /**
   * 客户id
   */
  @NotNull(message = "客户id不能为空")
  private Long customerId;
  /**
   * 录单人id
   */
  @NotNull(message = "录单人id不能为空")
  private Long brokerageId;
  /**
   * 对账单关联单据明细
   */
  @NotEmpty(message = "对账单关联单据明细不能为空")
  private List<StatementAccountBillItemMto> items;

  @Data
  @NoArgsConstructor
  @AllArgsConstructor
  public class StatementAccountBillItemMto implements Serializable {
    /**
     * 来源单类型 0 销售单 1 销售退货单 2采购单 4 采购退货单 5 费用单 6 收入单
     */
    @NotNull(message = "来源单类型不能为空")
    private Short sourceType;
    /**
     * 来源单号
     */
    @NotEmpty(message = "来源单号不能为空")
    private String sourceCode;
    /**
     * 来源单id
     */
    @NotNull(message = "来源单id不能为空")
    private Long sourceId;

  }
}
